/*
 * Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved.
 * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 */

package java.lang.annotation;

/**
 * 注解保留策略。此枚举类型的常量描述了保留注解的各种策略。
 * 它们与{@link Retention}元注解类型结合使用，以指定注解要保留多长时间。
 *
 * @author  Joshua Bloch
 * @since 1.5
 */
public enum RetentionPolicy {
    /**
     * 注解将被编译器丢弃。
     */
    SOURCE,

    /**
     * 注解将由编译器记录在类文件中，但VM在运行时不需要保留它们。
     * 这是默认行为。
     */
    CLASS,

    /**
     * 注解将由编译器记录在类文件中，并由VM在运行时保留，
     * 因此可以反射性地读取它们。
     *
     * @see java.lang.reflect.AnnotatedElement
     */
    RUNTIME
}
